﻿#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

union test1
{
	char c;
	int i;
};


struct test2
{
	char c;
	int i;
};

//int main()
//{
//	printf("%zd\n", sizeof(union test1));
//	printf("%zd\n", sizeof(struct test2));
//	union test1 un1 = { 0 };
//	un1.i = 0x44332211;
//	un1.c = 5;
//	return 0;
//}

union test3
{
	char ch[5];
	int i;
};

//int main()
//{
//	printf("zd\n", sizeof(union test3));
//	return 0;
//}

//每⼀种商品都有：`库存量、价格、商品类型`和`商品类型相关的其他信息`。
//图书：书名、作者、⻚数
//杯⼦：设计
//衬衫：设计、可选颜⾊、可选尺⼨

//struct sell
//{
//	int Inventory_quantity;//库存
//	float price;//价格
//	char product_type[30];//商品类型
//
//	char Title[30];//书名
//	char Author[30];//作者
//	int Number_of_Pages;//页数
//
//	char design[30];//设计
//
//	char colar[30];//可选颜色
//	int size;//可选尺寸
//};

struct sell
{
	int Inventory_quantity;//库存
	float price;//价格
	char product_type[30];//商品类型

	union 
	{
		struct
		{
			char Title[30];//书名
			char Author[30];//作者
			int Number_of_Pages;//页数
		}book;
		struct
		{
			char design[30];//设计
		}mug;
		struct
		{
			char design[30];//设计
			char colar[30];//可选颜色
			int size;//可选尺寸
		}shirt;
	};
}item;

int check_sys()
{
	union
	{
		int i;
		char c;
	}un;
	un.i = 1;
	return un.c;//返回1是⼩端，返回0是⼤端 
}


int main()
{
	int a = 1;
	if (*((char*)&a) == 1)
	{
		printf("小端");
	}
	else
	{
		printf("大端");
	}
	return 0;
}


// 定义枚举类型
enum 枚举名 {
	常量1,   // 默认值为0
	常量2,   // 默认值为1（前一个常量+1）
	常量3 = 5,  // 手动指定值为5
	常量4    // 自动为6（前一个常量+1）
};

enum color//里面定义的是枚举常量
{
	red,
	green,
	blue,
	yellow
};

enum color lor = green;//这个是枚举变量